/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocio;

import Datos.Conexion;
import Datos.Global;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author RODRIGO
 */
public class clsProveedor {

    public static void insertar_Proveedor(String nombre_empresa, String direccion, float valoracion, String ciudad, String nroCuenta, String contacto, String email) {
        try {
            String sql = "CALL `insert_Proveedor`(?,?,?,?,?,?,?)";
            CallableStatement proc = Conexion.conn.prepareCall(sql);
            proc.setString(1, nombre_empresa);
            proc.setString(2, direccion);
            proc.setFloat(3, valoracion);
            proc.setString(4, ciudad);
            proc.setString(5, nroCuenta);
            proc.setString(6, contacto);
            proc.setString(7, email);

            proc.executeUpdate();
        } catch (SQLException ex) {
            System.out.println("error al insertar proveedor " + ex);
        }
    }

    public static boolean modificar_Proveedor(int idProveedor, String nombre_empresa, String direccion, float valoracion, String ciudad, String nroCuenta, String contacto, String email) {
        try {

            String sql = "CALL `update_Proveedor`(?,?,?,?,?,?,?,?)";
            CallableStatement proc = Conexion.conn.prepareCall(sql);
            proc.setInt(1, idProveedor);
            proc.setString(2, nombre_empresa);
            proc.setString(3, direccion);
            proc.setFloat(4, valoracion);
            proc.setString(5, ciudad);
            proc.setString(6, nroCuenta);
            proc.setString(7, contacto);
            proc.setString(8, email);
            proc.executeUpdate();
            return true;
        } catch (Exception e) {
            System.out.println("error al modificar proveedor " + e);
        }
        return false;
    }
    
    public static void eliminar_proveedor(int idProveedor){
        try {
            String sql="CALL `deleted_Proveedor`("+'"'+idProveedor+'"'+")";
            CallableStatement proc=Conexion.conn.prepareCall(sql);
            proc.executeUpdate();
        } catch (SQLException ex) {
            System.out.println("error al eliminar proveedor "+ex);
        }
    }

    public static void mostrarTablaProveedores(JTable jtb, String sql) {
        Global.limpiarTabla(jtb);
        try {
            DefaultTableModel dftm = (DefaultTableModel) jtb.getModel();
            ResultSet rs = Conexion.executeQuery(Conexion.conn, sql, null);
            while (rs.next()) {
                Object[] o = new Object[10];
                o[0] = rs.getInt(1);
                o[1] = rs.getString(2);
                o[2] = rs.getString(3);
                o[3] = rs.getString(4);
                o[4] = rs.getString(5);
                o[5] = rs.getString(6);
                o[6] = rs.getString(7);
                o[7] = rs.getFloat(8);
                o[8] = rs.getString(9);
                o[9] = Boolean.FALSE;
                dftm.addRow(o);
            }
        } catch (Exception e) {
            System.out.println("error al mostrar en tabla de insumo " + e);
        }
    }

    public static void deshabilitar_proveedor(int idProveedor, String estado) {
        try {
            String sql="CALL `deshabilitar_proveedor`("+idProveedor+","+'"'+estado+'"'+")";
            CallableStatement proc=Conexion.conn.prepareCall(sql);
            proc.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(clsProveedor.class.getName()).log(Level.SEVERE, null, ex);
        }   
    }
    
    public static int obtener_idProveedor() {
        try {
            String sql = "CALL `obtener_idProveedor`";
            ResultSet res = Conexion.executeQuery(Conexion.conn, sql, null);
            while (res.next()) {
                return res.getInt(1);
            }
        } catch (SQLException ex) {
            System.out.println("error al obtener idIproveedor " + ex);
        }
        return -1;
    }
}
